মডেল ইভ্যালুয়েশন হল মেশিন লার্নিং মডেলের পারফরম্যান্স মূল্যায়ন করার প্রক্রিয়া। বিভিন্ন মেট্রিক্স মডেলের কার্যকারিতা পরিমাপ করতে ব্যবহৃত হয়, এবং এগুলি ক্লাসিফিকেশন মডেলগুলির জন্য বিশেষভাবে গুরুত্বপূর্ণ। এই মেট্রিক্সগুলির মধ্যে Accuracy, Precision, Recall, এবং F1 Score অন্যতম। এগুলি কীভাবে কাজ করে এবং কখন ব্যবহৃত হয়, তা নিচে আলোচনা করা হলো।
১. Accuracy (একুরেসি)
Accuracy হল একটি মেট্রিক্স যা মডেলটির সঠিক পূর্বাভাসের হার পরিমাপ করে। এটি মোট সঠিক পূর্বাভাসের সংখ্যা মোট পূর্বাভাসের সংখ্যা দ্বারা ভাগ করা হয়।
ফর্মুলা:
যেখানে:
- TP (True Positive): সঠিকভাবে পজিটিভ শ্রেণী চিহ্নিত করা।
- TN (True Negative): সঠিকভাবে নেগেটিভ শ্রেণী চিহ্নিত করা।
- FP (False Positive): ভুলভাবে পজিটিভ শ্রেণী চিহ্নিত করা।
- FN (False Negative): ভুলভাবে নেগেটিভ শ্রেণী চিহ্নিত করা।
ব্যাখ্যা:
- Accuracy হল মোট সঠিক পূর্বাভাসের হার, কিন্তু এটি কিছু ক্ষেত্রে বিভ্রান্তিকর হতে পারে যদি ডেটাতে অসামান্য শ্রেণী অপ্রতুলতা (class imbalance) থাকে। যেমন, যদি নেগেটিভ শ্রেণী অনেক বেশি হয় এবং মডেলটি সবকিছুই নেগেটিভ পূর্বাভাস দেয়, তবে accuracy ভালো থাকতে পারে, যদিও মডেলটি ভালো কাজ করছে না।
উদাহরণ:
from sklearn.metrics import accuracy_score
y_true = [1, 0, 1, 1, 0, 1]
y_pred = [1, 0, 1, 0, 0, 1]
accuracy = accuracy_score(y_true, y_pred)
print("Accuracy:", accuracy)
২. Precision (প্রেসিশন)
Precision হল একটি মেট্রিক্স যা মডেলটির সঠিক পজিটিভ পূর্বাভাসের হার পরিমাপ করে, অর্থাৎ যেসব পূর্বাভাস পজিটিভ ছিল, সেগুলির মধ্যে কতটা সঠিকভাবে পজিটিভ শ্রেণী চিহ্নিত হয়েছে।
ফর্মুলা:
ব্যাখ্যা:
- Precision গণনা করে, যতটি পূর্বাভাস পজিটিভ ছিল, তার মধ্যে কতটি সঠিক ছিল।
- এটি তখন গুরুত্বপূর্ণ যখন False Positive (FP) কমানো গুরুত্বপূর্ণ, যেমন স্প্যাম ইমেইল ডিটেকশন, যেখানে আপনি চান যে মডেলটি শুধু নিশ্চিত স্প্যাম ইমেইলই চিহ্নিত করুক, নন-স্প্যাম না।
উদাহরণ:
from sklearn.metrics import precision_score
precision = precision_score(y_true, y_pred)
print("Precision:", precision)
৩. Recall (রেকল)
Recall বা Sensitivity হল একটি মেট্রিক্স যা মডেলটির সঠিক পজিটিভ শনাক্তকরণের হার পরিমাপ করে, অর্থাৎ মোট পজিটিভ ক্লাসের মধ্যে কতটুকু মডেল সঠিকভাবে পজিটিভ শনাক্ত করেছে।
ফর্মুলা:
ব্যাখ্যা:
- Recall গণনা করে, কতটা আসল পজিটিভ ক্লাস সঠিকভাবে শনাক্ত হয়েছে।
- এটি তখন গুরুত্বপূর্ণ যখন False Negative (FN) কমানো গুরুত্বপূর্ণ, যেমন মেডিকেল ডায়াগনোসিসে, যেখানে আপনি চান যে মডেলটি প্রতিটি রোগীকে সঠিকভাবে শনাক্ত করুক।
উদাহরণ:
from sklearn.metrics import recall_score
recall = recall_score(y_true, y_pred)
print("Recall:", recall)
৪. F1 Score
F1 Score হল একটি মেট্রিক্স যা Precision এবং Recall এর গড় হার পরিমাপ করে। F1 Score মেট্রিকটি বিশেষভাবে কার্যকরী যখন আপনার ক্লাসের মধ্যে imbalance থাকে, অর্থাৎ এক শ্রেণীর সংখ্যা অন্য শ্রেণীর তুলনায় অনেক কম। F1 Score দুটি মেট্রিক্সের ভারসাম্য বজায় রাখে।
ফর্মুলা:
ব্যাখ্যা:
- F1 Score হল Precision এবং Recall এর মধ্যে একটি ভারসাম্য।
- এটি ব্যবহার করা হয় যখন আপনি চান একটি কম্প্রোমাইজ সলিউশন, অর্থাৎ আপনি False Positives এবং False Negatives উভয়ই কমাতে চান।
উদাহরণ:
from sklearn.metrics import f1_score
f1 = f1_score(y_true, y_pred)
print("F1 Score:", f1)
Accuracy, Precision, Recall, F1 Score এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Accuracy | Precision | Recall | F1 Score |
|---|---|---|---|---|
| বিবরণ | সঠিক পূর্বাভাসের হার | পজিটিভ পূর্বাভাসের সঠিকতা | আসল পজিটিভ শ্রেণী সঠিকভাবে শনাক্তকরণ | Precision এবং Recall এর ভারসাম্য |
| ফর্মুলা | ||||
| উচ্চ মানের অর্থ | সঠিক পূর্বাভাসের বেশি হার | পজিটিভ ক্লাস সঠিকভাবে শনাক্ত করা | সকল পজিটিভ ক্লাস সঠিকভাবে শনাক্ত করা | Precision এবং Recall এর ভাল ভারসাম্য |
| ব্যবহার | সাধারণভাবে সকল ক্লাসের জন্য | False Positive কমানো গুরুত্বপূর্ণ | False Negative কমানো গুরুত্বপূর্ণ | যখন Precision এবং Recall এর মধ্যে ভারসাম্য প্রয়োজন |
সারাংশ:
- Accuracy হল মোট সঠিক পূর্বাভাসের হার।
- Precision হল যেসব পজিটিভ পূর্বাভাস মডেল দিয়েছে তার মধ্যে সঠিক পজিটিভ পূর্বাভাসের হার।
- Recall হল আসল পজিটিভ ক্লাসের মধ্যে কতটা সঠিকভাবে শনাক্ত হয়েছে।
- F1 Score হল Precision এবং Recall এর একটি ভারসাম্য, যা বিশেষভাবে উপকারী যখন ডেটাতে অসামান্য শ্রেণী অপ্রতুলতা থাকে।
এই মেট্রিক্সগুলির মধ্যে সঠিক নির্বাচন আপনার ক্লাসিফিকেশন মডেলের পারফরম্যান্স ভালোভাবে মূল্যায়ন করতে সহায়ক।
Read more